"""
编写一个函数 top_primes，该函数接受一个整数列表和一个关键字参数 n（默认值为3）。
函数应使用列表推导式返回原始列表中的前 n 个质数

    例如：	result = top_primes([4, 5, 6, 7, 8, 9, 10, 2, 3], n=4)
            print(result) # 输出：[5, 7, 2, 3]
"""


def is_prime(num):
    if num < 2:
        return False
    for i in range(2, int(num ** 0.5) + 1):  # 遍历从2到num的平方根的所有数字
        if num % i == 0:  # 如果num能被i整除，则它不是质数
            return False
    return True  # 如果循环结束都没有找到可以整除num的数字，则它是质数


def top_primes(lst, n=3):
    # 使用列表推导式来筛选出列表中的质数，is_prime(x)用于检查x是否为质数
    return [x for x in lst if is_prime(x)][:n]  # [:n]用于获取列表中的前n个元素


if __name__ == '__main__':
    result = top_primes([4, 5, 6, 7, 8, 9, 10, 2, 3], n=4)  # 调用函数，n=4表示我们想要获取前4个质数
    print(result)  # 打印结果